모의해킹
호스트기반모의해킹_34_리눅스 소프트웨어 취약점
작성자 : Heehyeon Yoo|2025-12-12
# 모의해킹# Post-Exploitation# Linux# Privilege Escalation# Exploit-DB
1. 개요
리눅스 시스템은 수많은 패키지와 서드파티 소프트웨어로 구성된다. 커널(Kernel) 자체의 취약점뿐만 아니라, 설치된 응용 프로그램(Application)의 구버전 취약점을 악용하여 권한 상승을 시도할 수 있다.
2. 취약한 소프트웨어 식별
2.1 패키지 매니저 확인
dpkg -l: Debian/Ubuntu 계열 설치 패키지 목록.rpm -qa: RedHat/CentOS 계열.- 설치된 패키지 중 버전이 현저히 낮은 라이브러리나 데몬을 눈여겨본다. 하지만 목록이 너무 방대하여 육안 식별은 어렵다.
2.2 수동 설치 디렉토리(/opt)(★중요)
ls -al /opt/: 관리자가 패키지 매니저를 통하지 않고 수동으로 설치(Compile/Manual Install)한 소프트웨어가 주로 위치한다.- 핵심: 수동 설치된 SW는
apt upgrade등으로 자동 업데이트가 되지 않아, 심각한 구버전 취약점(Legacy Vulnerability)이 방치될 확률이 매우 높다. - 예시:
/opt/screen-4.5.0/발견 ->GNU Screen 4.5.0버전임을 확인.
3. 익스플로잇 검색(Search & Exploit)
3.1 취약점 DB 검색(Searchsploit)
Kali Linux에는 Exploit-DB의 오프라인 사본(searchsploit)이 내장되어 있다.
# 특정 소프트웨어 버전으로 검색
searchsploit screen 4.5.0
# 결과 예시:
# GNU Screen 4.5.0 - Local Privilege Escalation | linux/local/41154.sh
Local Privilege Escalation: 로컬 권한 상승 가능 취약점임을 확인.
3.2 익스플로잇 코드 확보
searchsploit에서 찾은 코드를 현재 디렉토리로 복사한다.
searchsploit -m 41154.sh
-m: Mirror(복사).- 가져온 스크립트(
41154.sh) 내용을 반드시cat이나vi로 확인하여 악성 코드 유무와 컴파일 방법을 파악해야 한다.
4. 공격 실행(Execution)
- 파일 전송: 확보한 익스플로잇 코드를 타겟 호스트로 전송한다.(SCP, Python HTTP 등 활용).
- 컴파일(Compilation):
- 대부분의 로컬 익스플로잇은 C언어로 작성되어 있어 컴파일이 필요하다.
- 스크립트 내부에 컴파일 명령어가 포함된 경우도 있다.
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c(예시)
- 실행:
chmod +x 41154.sh./41154.sh
- 권한 확인:
# whoami->root- 성공 시 루트 쉘을 획득하게 된다.
5. 실무 팁
- 컴파일 환경 부재: 타겟 호스트에
gcc가 없을 수 있다. 이 경우, 타겟과 동일한 OS/아키텍처를 가진 로컬 VM에서 미리 컴파일한 후 바이너리 파일만 전송해야 한다.